public static V8Obj ByteArrayToV8ob(byte[] src) { // public char[] sig; // сигнатура SIG_OBJ // public UInt32 len; // длина файла // public _version version; // public UInt32[] blocks; // 1018 //V8ob Res = new V8ob(); V8Obj Res = new V8Obj(); Res.Sig = Encoding.UTF8.GetChars(src, 0, 8); Res.Len = BitConverter.ToUInt32(src, 8); //Res.Version.Version_1 = BitConverter.ToUInt32(src, 12); _Version VV = new _Version(0, 0, 0); VV.Version_1 = BitConverter.ToUInt32(src, 12); VV.Version_2 = BitConverter.ToUInt32(src, 16); VV.Version_3 = BitConverter.ToUInt32(src, 20); Res.Version = VV; //Res.Version.Version_1 = 1; //Res.Version.Version_2 = BitConverter.ToUInt32(src, 16); //Res.Version.Version_3 = BitConverter.ToUInt32(src, 20); Res.Blocks = new UInt32[1018]; Array.Clear(Res.Blocks, 0, Res.Blocks.Length); Array.Copy(src, 24, Res.Blocks, 0, src.Length - 24); return(Res); }
public static V838ObjData ByteArrayTov838ob(byte[] src) { // public char[] sig; // сигнатура 0x1C 0xFD (1C File Data?) sig[2]; // public Int16 fatlevel; // уровень таблицы размещения (0x0000 - в таблице blocks номера страниц с данными, 0x0001 - в таблице blocks номера страниц с таблицами размещения второго уровня, в которых уже, в свою очередь, находятся номера страниц с данными) // public _version version; // public UInt64 len; // длина файла // public UInt32[] blocks; // Реальная длина массива зависит от размера страницы и равна pagesize/4-6 (от это 1018 для 4К до 16378 для 64К) blocks[1]; V838ObjData Res = new V838ObjData(); //Res.sig = Encoding.UTF8.GetChars(src, 0, 2); Res.Sig = new byte[2]; Array.Copy(src, 0, Res.Sig, 0, 2); Res.Fatlevel = BitConverter.ToInt16(src, 2); _Version VV = new _Version(0, 0, 0); VV.Version_1 = BitConverter.ToUInt32(src, 4); VV.Version_2 = BitConverter.ToUInt32(src, 8); VV.Version_3 = BitConverter.ToUInt32(src, 12); Res.Version = VV; Res.Len = BitConverter.ToUInt64(src, 16); //Res.blocks = new UInt32[16378]; Res.Blocks = new UInt32[1]; Array.Clear(Res.Blocks, 0, Res.Blocks.Length); //Array.Copy(src, 24, Res.blocks, 0, src.Length - 20); Array.Copy(src, 24, Res.Blocks, 0, 1); return(Res); }
/// <summary> /// Найти миграции. /// </summary> /// <param name="scriptsPrefix">префикс скриптов миграции.</param> /// <returns>Список миграций.</returns> private List <_Version> FindMigrations(string scriptsPrefix) { Dictionary <string, string> scripts = FindScripts(scriptsPrefix); List <_Version> migrations = new List <_Version>(); foreach (var scriptName in scripts.Keys) { var scriptBody = scripts[scriptName]; string scriptHash = CreateMD5(scriptBody); var versionFromName = GetVersionFromScriptName(scriptName); var versionFromBody = GetVersionFromScriptBody(scriptBody); if ((versionFromName ?? versionFromBody) == null) { logger.LogError($"Не задана версия базы данных для скрипта {scriptName}. Задается либо в названии файла типа 1_0_453_Migration name.sql, " + $"либо комментарием внутри скрипта типа --version = 1.0.453."); } _Version mig = new _Version() { Id = 0, Name = versionNumberComparer.SerializeVersionNumber(versionFromName ?? versionFromBody, '.'), ScriptBody = scriptBody, ScriptHash = scriptHash, Description = scriptName, AppliedOn = DateTime.Now }; migrations.Add(mig); } return(migrations); }
private void Start() { tutorialAlertCanvas = GameObject.Find("TutorialAlertCanvas"); tutorialAlertCanvas.GetComponent <CanvasGroup>().alpha = 0f; tutorialAlertCanvas.SetActive(false); playedTutorial = PlayerPrefs.HasKey(tutorialKey); version = GameObject.Find("_VERSION").GetComponent <_Version>(); }
public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged) { Time = raw.time; Paused = (raw.paused > 0); TruckId = rawUnmanaged.TruckModel; Truck = Encoding.UTF8.GetString(raw.truckModel).Replace('\0', ' ').Trim(); Manufacturer = Encoding.UTF8.GetString(raw.truckMake).Replace('\0', ' ').Trim(); ManufacturerId= Encoding.UTF8.GetString(raw.truckMakeId).Replace('\0', ' ').Trim(); Version = new _Version(); Controls = new _Controls(); Physics = new _Physics(); Drivetrain = new _Drivetrain(); Job = new _Job(); Axilliary = new _Axilliary(); Damage = new _Damage(); Lights = new _Lights(); // Version Version.Ets2Major = raw.ets2_version_major; Version.Ets2Minor = raw.ets2_version_minor; Version.SdkPlugin = raw.ets2_telemetry_plugin_revision; // Controls Controls.GameBrake = raw.gameBrake; Controls.GameClutch = raw.gameClutch; Controls.GameSteer = raw.gameSteer; Controls.GameThrottle = raw.gameThrottle; Controls.UserBrake = raw.userBrake; Controls.UserClutch = raw.userClutch; Controls.UserSteer = raw.userSteer; Controls.UserThrottle = raw.userThrottle; // Physics Physics.AccelerationX = raw.accelerationX; Physics.AccelerationY = raw.accelerationY; Physics.AccelerationZ = raw.accelerationZ; Physics.CoordinateX = raw.coordinateX; Physics.CoordinateY = raw.coordinateY; Physics.CoordinateZ = raw.coordinateZ; Physics.RotationX = raw.rotationX; Physics.RotationY = raw.rotationY; Physics.RotationZ = raw.rotationZ; Physics.Speed = raw.speed; Physics.SpeedKmh = raw.speed*3.6f; Physics.SpeedMph = Physics.SpeedKmh/1.6f; // Drivetrain Drivetrain.Adblue = raw.adblue; Drivetrain.AdblueConsumption = raw.adblueConsumption; Drivetrain.AirPressure = raw.airPressure; Drivetrain.BrakeTemperature = raw.brakeTemperature; Drivetrain.CruiseControl = raw.GetBool(Ets2SdkBoolean.CruiseControl); Drivetrain.CruiseControlSpeed = raw.cruiseControlSpeed; Drivetrain.CruiseControlSpeedKmh = raw.cruiseControlSpeed * 3.6f; Drivetrain.CruiseControlSpeedMph = Drivetrain.CruiseControlSpeedKmh/ 1.6f; Drivetrain.ElectricEnabled = raw.GetBool(Ets2SdkBoolean.ElectricEnabled); Drivetrain.EngineEnabled = raw.GetBool(Ets2SdkBoolean.EngineEnabled); Drivetrain.EngineRpm = raw.engineRpm; Drivetrain.EngineRpmMax = raw.engineRpmMax; Drivetrain.Speed = raw.speed; Drivetrain.SpeedKmh = raw.speed * 3.6f; Drivetrain.SpeedMph = Physics.SpeedKmh / 1.6f; Drivetrain.Fuel = raw.fuel; Drivetrain.FuelAvgConsumption = raw.fuelAvgConsumption; Drivetrain.FuelMax = raw.fuelCapacity; Drivetrain.FuelRate = raw.fuelRate; Drivetrain.FuelWarning = raw.fuelWarning; Drivetrain.Gear = raw.gear; Drivetrain.GearRange = raw.gearRangeActive; Drivetrain.GearRanges = raw.gearRanges; Drivetrain.GearsForward = raw.gears; Drivetrain.GearsReverse = raw.gearsReverse; Drivetrain.MotorBrake = raw.GetBool(Ets2SdkBoolean.MotorBrake); Drivetrain.OilPressure = raw.oilPressure; Drivetrain.OilTemperature = raw.oilTemperature; Drivetrain.ParkingBrake = raw.GetBool(Ets2SdkBoolean.ParkBrake); Drivetrain.Retarder = raw.retarderBrake; Drivetrain.ShifterSlot = raw.shifterSlot; Drivetrain.ShifterToggle = raw.shifterToggle; Drivetrain.TruckOdometer = raw.truckOdometer; Drivetrain.WaterTemperature = raw.waterTemperature; // Job info: Job.CityDestination = Encoding.UTF8.GetString(raw.jobCityDestination).Replace('\0',' ').Trim(); Job.CitySource = Encoding.UTF8.GetString(raw.jobCitySource).Replace('\0', ' ').Trim(); Job.CompanyDestination = Encoding.UTF8.GetString(raw.jobCompanyDestination).Replace('\0', ' ').Trim(); Job.CompanySource = Encoding.UTF8.GetString(raw.jobCompanySource).Replace('\0', ' ').Trim(); Job.Deadline = raw.jobDeadline; Job.Income = raw.jobIncome; Job.Mass = raw.trailerMass; Job.TrailerAttached = raw.GetBool(Ets2SdkBoolean.TrailerAttached);//TODO Job.TrailerId = Encoding.UTF8.GetString(raw.trailerId).Replace('\0', ' ').Trim(); Job.TrailerName = Encoding.UTF8.GetString(raw.trailerName).Replace('\0', ' ').Trim(); Job.Cargo = rawUnmanaged.TrailerModel.Replace('\0', ' ').Trim(); // Axilliary flags Axilliary.AdblueWarning = raw.GetBool(Ets2SdkBoolean.AdblueWarning); Axilliary.AirPressureEmergency = raw.GetBool(Ets2SdkBoolean.AirPressureEmergency); Axilliary.AirPressureWarning = raw.GetBool(Ets2SdkBoolean.AirPressureWarning); Axilliary.BatteryVoltageWarning = raw.GetBool(Ets2SdkBoolean.BatteryVoltageWarning); Axilliary.OilPressureWarning = raw.GetBool(Ets2SdkBoolean.OilPressureWarning); Axilliary.WaterTemperatureWarning = raw.GetBool(Ets2SdkBoolean.WaterTemperatureWarning); Axilliary.Wipers = raw.GetBool(Ets2SdkBoolean.Wipers); // Damage Damage.WearCabin = raw.wearCabin; Damage.WearChassis = raw.wearChassis; Damage.WearEnigne = raw.wearEngine; Damage.WearTrailer = raw.wearTrailer; Damage.WearTransmission = raw.wearTransmission; Damage.WearWheels = raw.wearWheels; // Lights Lights.Beacon = raw.GetBool(Ets2SdkBoolean.LightsBeacon); Lights.BlinkerLeftActive = raw.GetBool(Ets2SdkBoolean.BlinkerLeftActive);// TODO Lights.BlinkerLeftOn = raw.GetBool(Ets2SdkBoolean.BlinkerLeftOn);// TODO Lights.BlinkerRightActive = raw.GetBool(Ets2SdkBoolean.BlinkerRightActive);// TODO Lights.BlinkerRightOn = raw.GetBool(Ets2SdkBoolean.BlinkerRightOn);// TODO Lights.BrakeLight = raw.GetBool(Ets2SdkBoolean.LightsBrake);// TODO Lights.FrontAux = raw.GetBool(Ets2SdkBoolean.LightsAuxFront);// TODO Lights.HighBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamHigh);// TODO Lights.LightsDashboard = raw.lightsDashboard; Lights.LowBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamLow);// TODO Lights.ParkingLights = raw.GetBool(Ets2SdkBoolean.LightsParking);// TODO Lights.ReverseLight = raw.GetBool(Ets2SdkBoolean.LightsReverse);// TODO Lights.RoofAux = raw.GetBool(Ets2SdkBoolean.LightsAuxRoof);// TODO }
public int Compare(_Version x, _Version y) { return(CompareMigrationNumbers(x?.Name, y?.Name)); }
public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged) { Time = raw.time; Paused = (raw.paused > 0); TruckId = rawUnmanaged.TruckModel; Truck = Encoding.UTF8.GetString(raw.truckModel).Replace('\0', ' ').Trim(); Manufacturer = Encoding.UTF8.GetString(raw.truckMake).Replace('\0', ' ').Trim(); ManufacturerId= Encoding.UTF8.GetString(raw.truckMakeId).Replace('\0', ' ').Trim(); Version = new _Version(); Controls = new _Controls(); Physics = new _Physics(); Drivetrain = new _Drivetrain(); Job = new _Job(); Axilliary = new _Axilliary(); Damage = new _Damage(); Lights = new _Lights(); // Version Version.Ets2Major = raw.ets2_version_major; Version.Ets2Minor = raw.ets2_version_minor; Version.SdkPlugin = raw.ets2_telemetry_plugin_revision; // Controls Controls.GameBrake = raw.gameBrake; Controls.GameClutch = raw.gameClutch; Controls.GameSteer = raw.gameSteer; Controls.GameThrottle = raw.gameThrottle; Controls.UserBrake = raw.userBrake; Controls.UserClutch = raw.userClutch; Controls.UserSteer = raw.userSteer; Controls.UserThrottle = raw.userThrottle; // Physics Physics.AccelerationX = raw.accelerationX; Physics.AccelerationY = raw.accelerationY; Physics.AccelerationZ = raw.accelerationZ; Physics.CoordinateX = raw.coordinateX; Physics.CoordinateY = raw.coordinateY; Physics.CoordinateZ = raw.coordinateZ; Physics.RotationX = raw.rotationX; Physics.RotationY = raw.rotationY; Physics.RotationZ = raw.rotationZ; Physics.Speed = raw.speed; Physics.SpeedKmh = raw.speed*3.6f; Physics.SpeedMph = Physics.SpeedKmh/1.6f; // Drivetrain Drivetrain.Adblue = raw.adblue; Drivetrain.AdblueConsumption = raw.adblueConsumption; Drivetrain.AirPressure = raw.airPressure; Drivetrain.BrakeTemperature = raw.brakeTemperature; Drivetrain.CruiseControl = raw.GetBool(Ets2SdkBoolean.CruiseControl); Drivetrain.CruiseControlSpeed = raw.cruiseControlSpeed; Drivetrain.CruiseControlSpeedKmh = raw.cruiseControlSpeed * 3.6f; Drivetrain.CruiseControlSpeedMph = Drivetrain.CruiseControlSpeedKmh/ 1.6f; Drivetrain.ElectricEnabled = raw.GetBool(Ets2SdkBoolean.ElectricEnabled); Drivetrain.EngineEnabled = raw.GetBool(Ets2SdkBoolean.EngineEnabled); Drivetrain.EngineRpm = raw.engineRpm; Drivetrain.EngineRpmMax = raw.engineRpmMax; Drivetrain.Speed = raw.speed; Drivetrain.SpeedKmh = raw.speed * 3.6f; Drivetrain.SpeedMph = Physics.SpeedKmh / 1.6f; Drivetrain.Fuel = raw.fuel; Drivetrain.FuelRange = raw.fuelRange; Drivetrain.FuelAvgConsumption = raw.fuelAvgConsumption; Drivetrain.FuelMax = raw.fuelCapacity; Drivetrain.FuelRate = raw.fuelRate; Drivetrain.FuelWarningLight = raw.fuelWarning == 0 ? false : true; Drivetrain.Gear = raw.gear; Drivetrain.GearRange = raw.gearRangeActive; Drivetrain.GearRanges = raw.gearRanges; Drivetrain.GearsForward = raw.gears; Drivetrain.GearsReverse = raw.gearsReverse; // Note all gears var gearFw = raw.gearRatioForward; var gearRw = raw.gearRatioReverse; Array.Resize<float>(ref gearFw, Drivetrain.GearsForward); Array.Resize<float>(ref gearRw, Drivetrain.GearsReverse); Drivetrain.GearRatiosForward = gearFw; Drivetrain.GearRatiosReverse = gearRw; Drivetrain.GearRatioDifferential = raw.gearRatioDifferential; Drivetrain.GearDashboard =raw.gearDashboard; Drivetrain.MotorBrake = raw.GetBool(Ets2SdkBoolean.MotorBrake); Drivetrain.OilPressure = raw.oilPressure; Drivetrain.OilTemperature = raw.oilTemperature; Drivetrain.ParkingBrake = raw.GetBool(Ets2SdkBoolean.ParkBrake); Drivetrain.Retarder = raw.retarderBrake; Drivetrain.ShifterSlot = raw.shifterSlot; Drivetrain.ShifterToggle = raw.shifterToggle; Drivetrain.TruckOdometer = raw.truckOdometer; Drivetrain.WaterTemperature = raw.waterTemperature; // Job info: Job.CityDestination = Encoding.UTF8.GetString(raw.jobCityDestination).Replace('\0',' ').Trim(); Job.CitySource = Encoding.UTF8.GetString(raw.jobCitySource).Replace('\0', ' ').Trim(); Job.CompanyDestination = Encoding.UTF8.GetString(raw.jobCompanyDestination).Replace('\0', ' ').Trim(); Job.CompanySource = Encoding.UTF8.GetString(raw.jobCompanySource).Replace('\0', ' ').Trim(); Job.Deadline = raw.jobDeadline; Job.Income = raw.jobIncome; Job.Mass = raw.trailerMass; Job.TrailerAttached = raw.GetBool(Ets2SdkBoolean.TrailerAttached);//TODO Job.TrailerId = Encoding.UTF8.GetString(raw.trailerId).Replace('\0', ' ').Trim(); Job.TrailerName = Encoding.UTF8.GetString(raw.trailerName).Replace('\0', ' ').Trim(); Job.Cargo = Job.TrailerName; // trailerModel is actually deprecated Job.NavigationDistanceLeft = raw.routeDistance; Job.NavigationTimeLeft = raw.routeTime; Job.SpeedLimit = raw.speedLimit; Job.OnJob = raw.onJob != 0; Job.JobFinished = raw.jobFinished != 0; // Axilliary flags Axilliary.AdblueWarning = raw.GetBool(Ets2SdkBoolean.AdblueWarning); Axilliary.AirPressureEmergency = raw.GetBool(Ets2SdkBoolean.AirPressureEmergency); Axilliary.AirPressureWarning = raw.GetBool(Ets2SdkBoolean.AirPressureWarning); Axilliary.BatteryVoltageWarning = raw.GetBool(Ets2SdkBoolean.BatteryVoltageWarning); Axilliary.OilPressureWarning = raw.GetBool(Ets2SdkBoolean.OilPressureWarning); Axilliary.WaterTemperatureWarning = raw.GetBool(Ets2SdkBoolean.WaterTemperatureWarning); Axilliary.Wipers = raw.GetBool(Ets2SdkBoolean.Wipers); // Damage Damage.WearCabin = raw.wearCabin; Damage.WearChassis = raw.wearChassis; Damage.WearEnigne = raw.wearEngine; Damage.WearTrailer = raw.wearTrailer; Damage.WearTransmission = raw.wearTransmission; Damage.WearWheels = raw.wearWheels; // Lights Lights.Beacon = raw.GetBool(Ets2SdkBoolean.LightsBeacon); Lights.BlinkerLeftActive = raw.GetBool(Ets2SdkBoolean.BlinkerLeftActive);// TODO Lights.BlinkerLeftOn = raw.GetBool(Ets2SdkBoolean.BlinkerLeftOn);// TODO Lights.BlinkerRightActive = raw.GetBool(Ets2SdkBoolean.BlinkerRightActive);// TODO Lights.BlinkerRightOn = raw.GetBool(Ets2SdkBoolean.BlinkerRightOn);// TODO Lights.BrakeLight = raw.GetBool(Ets2SdkBoolean.LightsBrake);// TODO Lights.FrontAux = raw.GetBool(Ets2SdkBoolean.LightsAuxFront);// TODO Lights.HighBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamHigh);// TODO Lights.LightsDashboard = raw.lightsDashboard; Lights.LowBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamLow);// TODO Lights.ParkingLights = raw.GetBool(Ets2SdkBoolean.LightsParking);// TODO Lights.ReverseLight = raw.GetBool(Ets2SdkBoolean.LightsReverse);// TODO Lights.RoofAux = raw.GetBool(Ets2SdkBoolean.LightsAuxRoof);// TODO }
void register(string name, string author, string version, string id) { Version = new _Version(name, author, version, id); //engine.EmbedHostObject("version", Version); }